home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er 1986 April
/
64er_Magazin_86-04_1986_Markt__Technik_de.d64
/
listing 5
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
4KB
|
149 lines
10 .tab(1,4;in hypra-ass: .li 1,4
20 .stop$c000;in hypra-ass: .ba $c000
30 ;*************************************
40 ; verschachtelte schleifen anwendung
50 ; allgemeiner bildschirmrahmen
60 ;*************************************
70 ;
80 ;lagerplatz fuer die zeichen: (hpyra-ass jeweils: .eq code1 = $1b usw.)
90 .remcode1=$1b;zeichen (NULL) = 4f
100 .remcode2=$1c;zeichen usr = 77
110 .remcode3=$1d;zeichen (NULL) = 50
120 .remcode4=$1e;zeichen fn = 74
130 .remcode5=$1f;zeichen then = 6a
140 .remcode6=$20;zeichen (NULL) = 4c
150 .remcode7=$21;zeichen and = 6f
160 .remcode8=$22;zeichen sqr = 7a
170 ;vektoren fuer bildchirm- und farb-ram:
180 .remscreen=$fb;bildschirmstart
190 .remcolor=$fd;farbramstart
200 ;zaehler:
210 .remhoriz=$23;zaehler fuer horizontale
220 .remvert=$24;zaehler fuer vertikale
230 ;der farbcode wird nur im x-register gespeichert
240 ;
250 ;definition eines makro: aktuell
260 ;in hypra-ass stattdessen: .ma aktuell(screen,color)
270 .verifyaktuell(screen,color)
280 spc(
290 cont
300 dimscreen
310 nextscreen
320 forscreen+1
330 dim#$00
340 nextscreen+1
350 spc(
360 cont
370 dimcolor
380 nextcolor
390 forcolor+1
400 dim#$00
410 nextcolor+1
420 input##$00
430 .print#;in hypra-ass: .rt
440 ;
450 ;nun gehts los:
460 ;
470 ;-------------- initialisierung ------------
480 ;
490 data#$02;farbcode ins x-register
500 for#$4f;alle zeichen in die speicher packen
510 nextcode1
520 for#$77
530 nextcode2
540 for#$50
550 nextcode3
560 for#$74
570 nextcode4
580 for#$6a
590 nextcode5
600 for#$4c
610 nextcode6
620 for#$6f
630 nextcode7
640 for#$7a
650 nextcode8
660 for#$00;lsb bildschirmstart
670 nextscreen
680 for#$04;msb bildschirmstart
690 nextscreen+1
700 for#$00;lsb farbramstart
710 nextcolor
720 for#$d8;msb farbramstart
730 nextcolor+1
740 for#39;stellenzahl pro zeile
750 nexthoriz
760 for#23;zeilenzahl-2
770 nextvert
780 input##$00;zaehler auf null
790 ;
800 ;------------ nun kommen die jobs: -------------
810 ;job 1: beschreiben der oberen zeile
820 forcode1;1.zeichen links oben
830 next(screen),y;einschreiben
840 print#;farbcode
850 next(color),y;in farbramstelle schreiben
860 sys;zaehler erhoehen
870 marke1 forcode2;2.zeichen einladen
880 next(screen),y;eine kleine schleife
890 print#
900 next(color),y;farbram beschreiben
910 sys
920 loadhoriz;ist y schon > 38 ?
930 intmarke1;wenn nicht, weitermachen
940 forcode3;letztes zeichen obere zeile
950 next(screen),y;nach rechts oben schreiben
960 print#
970 next(color),y;wieder farbcode eintragen
980 sys
990 ;das war die erste zeile. nun kommen die seitenlinien
1000 ;job 2: beschreiben der seiten
1010 ;
1020 marke2
1030 .pokeaktuell(screen,color);aufruf des makro
1035 ;in hypra-ass: ...aktuell(screen,color)
1040 ;damit werden die vektoren screen und color aktualisiert
1050 forcode4;4.zeichen fuer linken rand
1060 next(screen),y;eintragen
1070 print#;und den farbcode
1080 next(color),y;ebenfalls
1090 marke3 sys;zaehler schnell hochzaehlen
1100 loadhoriz;ist y schon > 38 ?
1110 intmarke3;wenn nicht, weiterzaehlen
1120 forcode5;sonst 5.zeichen fuer rechten rand
1130 next(screen),y;eintragen
1140 print#;und farbcode
1150 next(color),y;in farbram
1160 sys
1170 savevert;mitzaehlen der zeilen
1180 usrmarke2;naechste zeile, wenn noch nicht null
1190 ;ansonsten sind nun beide seitenlinien vorhanden
1200 ;job 3: beschreiben der letzten zeile
1210 ;dazu nochmal makroaufruf zum aktualisieren der vektoren
1220 .pokeaktuell(screen,color);dies ist der aufruf
1225 ;in hypra-ass wieder: ...aktuell(screen,color)
1230 ;nun kommt der job:
1240 forcode6;6.zeichen links unten
1250 next(screen),y;einschreiben
1260 print#;wieder den farbcode
1270 next(color),y;ins farbram schreiben
1280 sys;und den zaehler erhoehen
1290 marke4 forcode7;7.zeichen
1300 next(screen),y;eintragen. kleine schleife
1310 print#
1320 next(color),y;farbram
1330 sys
1340 loadhoriz;schon > 38 ?
1350 intmarke4;wenn nicht, weitermachen
1360 forcode8;sonst letztes zeichen
1370 next(screen),y;nach rechts unten schreiben
1380 print#;und auch den farbcode
1390 next(color),y;ins farbram eintragen
1400 ;
1410 ;damit ist die arbeit getan
1420 ;--------------- ausgang einfach durch brk (monitor!) ---------
1430 ;
1440 or
1450 ;
1460 .to1,4;in hypra-ass: .sy 1,4